/*
**      $Filename: devices/netinfo.h $
**      $Release$
**      $Revision: 3.1 $
**      $Date: 1994/01/24 07:48:28 $
**
**      AmiTCP/IP netinfo.device interface for 32 bit C compilers
**
**      Copyright © 1993 AmiTCP/IP Group, <AmiTCP-Group@hut.fi>
**                  Helsinki University of Technology, Finland.
*/
MODULE  'exec/io'

#define NETINFONAME  'AmiTCP:devs/netinfo.device'

/*
 * Modified IOStdReq
 */

OBJECT NetInfoReq
        Message:Message,
        Device:PTR TO Device,    /* device node pointer  */
        Unit:PTR TO Unit,        /* unit (driver private) */
        Command:UWORD,           /* device command */
        Flags:UBYTE,
        Error:BYTE,              /* error or warning num */
        Actual:ULONG,            /* actual number of bytes transferred */
        Length:ULONG,            /* requested number bytes transferred*/
        Data:PTR,                /* points to data area */
        Offset:ULONG             /* search criteria */

/*
 * NetInfo units
 */

#define NETINFO_PASSWD_UNIT     0
#define NETINFO_GROUP_UNIT      1
#define NETINFO_UNITS           2

/* 
 * Non-standard commands
 */

#define NI_GETBYID     (CMD_NONSTD+0)
#define NI_GETBYNAME   (CMD_NONSTD+1)
#define NI_MEMBERS     (CMD_NONSTD+2)
#define NI_END         (CMD_NONSTD+3)

/*
 * Non-standard error codes (same as in the BSD errno)
 */

#define NIERR_NOTFOUND       2
#define NIERR_TOOSMALL       7
#define NIERR_NOMEM          12
#define NIERR_ACCESS         13
#define NIERR_NULL_POINTER   14
#define NIERR_INVAL          22

/* The passwd structure */

OBJECT NetInfoPasswd
        name:PTR TO UBYTE,      /* Username */
        passwd:PTR TO UBYTE,    /* Encrypted password */
        uid:LONG,               /* User ID */
        gid:LONG,               /* Group ID */
        gecos:PTR TO UBYTE,     /* Real name etc */
        dir:PTR TO UBYTE,       /* Home directory */
        shell:PTR TO UBYTE      /* Shell */

/* The group structure */

OBJECT NetInfoGroup
        name:PTR TO UBYTE,          /* Group name.  */
        passwd:PTR TO UBYTE,        /* Password.    */
        gid:LONG,                   /* Group ID.    */
        mem:PTR TO PTR TO UBYTE     /* Member list. */


